package com.captain.special.链表;

import com.captain.leetcode.链表.ListNode;

import java.util.List;

/**
 * Des:
 *
 * @author XL
 * @Date 2022/3/28 8:36
 */
public class 奇偶链表328 {
    public static void main(String[] args) {
        new 奇偶链表328().oddEvenList(ListNode.getInstance());
    }

    public ListNode oddEvenList(ListNode head) {
        if (head == null || head.next == null) return head;
        //链表的奇偶索引
        ListNode oddNumberNode = new ListNode(-1);
        ListNode oddCur = oddNumberNode;
        ListNode evenNode = new ListNode(-1);
        ListNode evenCur = evenNode;
        boolean flag = true;
        while (head != null) {
            //奇数标志
            if (flag) {
                //奇数
                oddCur.next = head;
                oddCur = oddCur.next;
                flag = false;
            } else {
                //偶数
                evenCur.next = head;
                evenCur = evenCur.next;
                flag = true;
            }
            head = head.next;
        }
        oddCur.next = evenNode.next;
        evenCur.next = null;
        return oddNumberNode.next;
    }
}
